package org.example.创建型模式.工厂方法模式.重构代码.发奖服务场景_工厂方法;

import org.example.创建型模式.工厂方法模式.重构代码.发奖服务场景_工厂方法.store.ICommodity;
import org.example.创建型模式.工厂方法模式.重构代码.发奖服务场景_工厂方法.store.impl.CardCommodityService;
import org.example.创建型模式.工厂方法模式.重构代码.发奖服务场景_工厂方法.store.impl.CouponCommodityService;
import org.example.创建型模式.工厂方法模式.重构代码.发奖服务场景_工厂方法.store.impl.GoodsCommodityService;

/**
 * @author : hmxchen
 * @program : modules-api
 * @description : 商品工厂
 * @create : 2022-04-11 20:16
 **/
public class StoreFactory {
    public ICommodity getCommodityService(Integer commodityType) {
        if (null == commodityType) {
            return null;
        }
        switch (commodityType){
            case 1 :
                return new CouponCommodityService();
            case 2:
                return new GoodsCommodityService();
            case 3:
                return new CardCommodityService();
            default:
                throw new RuntimeException("不存在的商品服务类型");
        }
    }

}
